#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

int gval = 100;

int main()
{
    printf("父 进 程 开 始 运 行, pid: %d\n",getpid());
    pid_t id = fork();
    if(id<0)
    {
        perror("fork");
        return 1;
    }
    else if(id==0)
    {
        // child
        printf("我 是 一 个 子  进 程 !, 我 的 pid：%d, 我 的 父 进 程 id: %d, gval=%d\n",getpid(),getppid(),gval);
        sleep(5);
        while(1)
        {
            sleep(1);
            printf("子 进 程 修 改 变 量: %d->%d\n",gval,gval+10);
            gval+=10;
            printf("我 是 一 个 子  进 程 !, 我 的 pid：%d, 我 的 父 进 程 id: %d\n",getpid(),getppid());
        }
    }
    else{

        while(1)
        {
            sleep(1);
            printf("我 是 一 个 父 进 程 !, 我 的 pid：%d, 我 的 父 进 程 id: %d, gval: %d\n",getpid(),getppid(),gval);
        }
    }
    printf("进 程 开 始 运 行, pid: %d\n",getpid());

    // chdir("/home/xzx");
    //while(1)
    //{
    //    sleep(1);
    //    printf("我 是 一 个 进 程 !, 我 的 pid：%d, 我 的 父 进 程 id: %d\n",getpid(),getppid());
    //}
    return 0;
}
